# 去除空行.py
# 功能：1. 读取text.txt文件，去除所有空行
#      2. 在每个句号(。)和分号(；)后面增加回车换行
#      3. 将结果写回原文件
# 作者：Cascade AI
# 日期：2025-03-22

import os

def process_text_file(file_path):
    """
    读取指定文件，去除所有空行，在每个句号和分号后增加回车换行，然后将结果写回原文件
    
    参数:
        file_path (str): 文件路径
    
    返回:
        tuple: (删除的空行数量, 添加的换行数量)
    """
    # 读取文件内容
    with open(file_path, 'r', encoding='utf-8') as file:
        lines = file.readlines()
    
    # 过滤掉空行（包括只有空格、制表符或换行符的行）
    non_empty_lines = [line for line in lines if line.strip()]
    
    # 计算删除的空行数量
    removed_lines_count = len(lines) - len(non_empty_lines)
    
    # 将所有非空行合并成一个字符串
    content = ''.join(non_empty_lines)
    
    # 在每个句号和分号后面添加换行符（如果后面不是已经有换行符）
    new_content = ''
    added_newlines = 0
    
    for i in range(len(content)):
        new_content += content[i]
        # 如果当前字符是句号或分号，且后面不是换行符，则添加换行符
        if (content[i] == '。' or content[i] == '；') and i + 1 < len(content) and content[i + 1] != '\n':
            new_content += '\n'
            added_newlines += 1
    
    # 将处理后的内容写回原文件
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(new_content)
    
    return removed_lines_count, added_newlines

if __name__ == "__main__":
    # 获取脚本所在目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 文件路径
    file_path = os.path.join(script_dir, "text.txt")
    
    # 执行文本处理操作
    removed_count, added_newlines = process_text_file(file_path)
    
    # 输出结果
    print(f"操作完成！共删除了 {removed_count} 个空行，在句号和分号后添加了 {added_newlines} 个换行。")
    print(f"处理后的文件已保存回 {file_path}")